import store from '@/store'

// function checkPermission(el, binding) {
//   const { value } = binding
//   const roles = store.getters && store.getters.roles

//   if (value && value instanceof Array) {
//     if (value.length > 0) {
//       const permissionRoles = value

//       const hasPermission = roles.some(role => {
//         return permissionRoles.includes(role)
//       })

//       if (!hasPermission) {
//         el.parentNode && el.parentNode.removeChild(el)
//       }
//     }
//   } else {
//     throw new Error(`need roles! Like v-permission="['admin','editor']"`)
//   }
// }

// 修改指令判断逻辑
// 将原来的通过指定角色判断是否有权限 变为通过指定菜单按钮权限来分配 本项目中角色名不固定
function checkPermission(el, binding) {
  const { value } = binding
  const permissions = store.getters && store.getters.permissions

  if (value && value instanceof Array) {
    if (value.length > 0) {
      const permissionCode = value

      const hasPermission = permissions.some(x => {
        return x.code === permissionCode && x.permissionType === 1
      })

      if (!hasPermission) {
        el.parentNode && el.parentNode.removeChild(el)
      }
    }
  } else {
    throw new Error(`need value! Like v-permission="system.user.add"`)
  }
}

export default {
  inserted(el, binding) {
    checkPermission(el, binding)
  },
  update(el, binding) {
    checkPermission(el, binding)
  }
}
